HAL USART constants migration

This section provides information about the HAL USART constants migration.

HAL USART error

HAL1

HAL2

In HAL1, error handling has been performed using a set of macros that define various error states, including combined errors such as HAL_USART_ERROR_DMA.

In HAL2, the error defines have been reorganized and renamed. - The HAL_USART_ERROR_DMA has been split into separate transmit and receive error defines. - The HAL_USART_ERROR_INVALID_CALLBACK has been removed. for more details refer to HAL_USART_GetError.

#define HAL_USART_ERROR_NONE
#define HAL_USART_ERROR_PE
#define HAL_USART_ERROR_NE
#define HAL_USART_ERROR_FE
#define HAL_USART_ERROR_ORE
#define HAL_USART_ERROR_RTO
#define HAL_USART_ERROR_UDR

#define HAL_USART_ERROR_DMA


#define HAL_USART_ERROR_INVALID_CALLBACK
#define HAL_USART_ERROR_NONE
#define HAL_USART_RECEIVE_ERROR_PE
#define HAL_USART_RECEIVE_ERROR_NE
#define HAL_USART_RECEIVE_ERROR_FE
#define HAL_USART_RECEIVE_ERROR_ORE
#define HAL_USART_RECEIVE_ERROR_RTO
#define HAL_USART_TRANSMIT_ERROR_UDR

#define HAL_USART_RECEIVE_ERROR_DMA
#define HAL_USART_TRANSMIT_ERROR_DMA

Related concept:


Note

The following USART constants, which were previously defined using the #define directive, have been converted to an enumerated type (enum).

Related concept: Replace Finite Parameter Defines (Including PPP Instances) with Enum Types at HAL Levels.

HAL USART stop bits

HAL1

HAL2



#define USART_STOPBITS_0_5
#define USART_STOPBITS_1
#define USART_STOPBITS_1_5
#define USART_STOPBITS_2
typedef enum
{
  HAL_USART_STOP_BIT_0_5,
  HAL_USART_STOP_BIT_1,
  HAL_USART_STOP_BIT_1_5,
  HAL_USART_STOP_BIT_2
} hal_usart_stop_bits_t;

HAL USART word length

HAL1

HAL2



#define USART_WORDLENGTH_7B
#define USART_WORDLENGTH_8B
#define USART_WORDLENGTH_9B
typedef enum
{
  HAL_USART_WORD_LENGTH_7_BIT,
  HAL_USART_WORD_LENGTH_8_BIT,
  HAL_USART_WORD_LENGTH_9_BIT
} hal_usart_word_length_t;

HAL USART clock phase

HAL1

HAL2



#define USART_PHASE_1EDGE
#define USART_PHASE_2EDGE
typedef enum
{
  HAL_USART_CLOCK_PHASE_1_EDGE,
  HAL_USART_CLOCK_PHASE_2_EDGE
} hal_usart_clock_phase_t;

HAL USART last bit

HAL1

HAL2



#define USART_LASTBIT_DISABLE
#define USART_LASTBIT_ENABLE
typedef enum
{
  HAL_USART_CLOCK_LAST_BIT_DISABLED,
  HAL_USART_CLOCK_LAST_BIT_ENABLED
} hal_usart_clock_last_bit_state_t;

HAL USART FIFO thresholds

In HAL2, USART FIFO thresholds for TX and RX are merged and defined using an enumeration type, hal_usart_fifo_threshold_t.

HAL1

HAL2

#define USART_TXFIFO_THRESHOLD_1_8
#define USART_TXFIFO_THRESHOLD_1_4
#define USART_TXFIFO_THRESHOLD_1_2
#define USART_TXFIFO_THRESHOLD_3_4
#define USART_TXFIFO_THRESHOLD_7_8
#define USART_TXFIFO_THRESHOLD_8_8

#define USART_RXFIFO_THRESHOLD_1_8
#define USART_RXFIFO_THRESHOLD_1_4
#define USART_RXFIFO_THRESHOLD_1_2
#define USART_RXFIFO_THRESHOLD_3_4
#define USART_RXFIFO_THRESHOLD_7_8
#define USART_RXFIFO_THRESHOLD_8_8
typedef enum
{
  HAL_USART_FIFO_THRESHOLD_1_8,
  HAL_USART_FIFO_THRESHOLD_1_4,
  HAL_USART_FIFO_THRESHOLD_1_2,
  HAL_USART_FIFO_THRESHOLD_3_4,
  HAL_USART_FIFO_THRESHOLD_7_8,
  HAL_USART_FIFO_THRESHOLD_8_8
} hal_usart_fifo_threshold_t;

HAL USART address detect length

HAL1

HAL2



#define USART_ADDRESS_DETECT_4B
#define USART_ADDRESS_DETECT_7B
typedef enum
{
  HAL_UART_ADDRESS_DETECT_4_BIT,
  HAL_UART_ADDRESS_DETECT_7_BIT
} hal_uart_address_detect_length_t;

HAL USART trigger polarity

HAL1

HAL2



#define USART_TRIG_POLARITY_RISING
#define USART_TRIG_POLARITY_FALLING
typedef enum
{
  HAL_USART_AM_TRIG_RISING,
  HAL_USART_AM_TRIG_FALLING
} hal_usart_am_trig_polarity_t;

HAL USART trigger sources

HAL1

HAL2



#define USART_GPDMA1_CH0_TCF_TRG
#define USART_GPDMA1_CH1_TCF_TRG
#define USART_GPDMA1_CH2_TCF_TRG
                .
                .
                .
typedef enum
{
  HAL_USART_AM_TRIG_GPDMA1_CH0_TC
  HAL_USART_AM_TRIG_GPDMA1_CH1_TC
  HAL_USART_AM_TRIG_GPDMA1_CH2_TC
                .
                .
                .
} hal_usart_am_trig_source_t;

HAL USART clock prescaler

HAL1

HAL2



#define USART_PRESCALER_DIV1
#define USART_PRESCALER_DIV2
#define USART_PRESCALER_DIV4
#define USART_PRESCALER_DIV6
#define USART_PRESCALER_DIV8
#define USART_PRESCALER_DIV10
#define USART_PRESCALER_DIV12
#define USART_PRESCALER_DIV16
#define USART_PRESCALER_DIV32
#define USART_PRESCALER_DIV64
#define USART_PRESCALER_DIV128
#define USART_PRESCALER_DIV256
typedef enum
{
  HAL_USART_PRESCALER_DIV1,
  HAL_USART_PRESCALER_DIV2,
  HAL_USART_PRESCALER_DIV4,
  HAL_USART_PRESCALER_DIV6,
  HAL_USART_PRESCALER_DIV8,
  HAL_USART_PRESCALER_DIV10,
  HAL_USART_PRESCALER_DIV12,
  HAL_USART_PRESCALER_DIV16,
  HAL_USART_PRESCALER_DIV32,
  HAL_USART_PRESCALER_DIV64,
  HAL_USART_PRESCALER_DIV128,
  HAL_USART_PRESCALER_DIV256
} hal_usart_prescaler_t;

HAL USART directions

HAL1

HAL2



#define USART_MODE_RX
#define USART_MODE_TX
#define USART_MODE_TX_RX
typedef enum
{
  HAL_USART_DIRECTION_RX,
  HAL_USART_DIRECTION_TX,
  HAL_USART_DIRECTION_TX_RX
} hal_usart_direction_t;

HAL USART requests

HAL1

HAL2



#define USART_RXDATA_FLUSH_REQUEST
#define USART_TXDATA_FLUSH_REQUEST
typedef enum
{
  HAL_USART_REQUEST_RX_DATA_FLUSH,
  HAL_USART_REQUEST_TX_DATA_FLUSH
} hal_usart_request_t;

HAL USART parity

HAL1

HAL2



#define USART_PARITY_NONE
#define USART_PARITY_EVEN
#define USART_PARITY_ODD
typedef enum
{
  HAL_USART_PARITY_NONE,
  HAL_USART_PARITY_EVEN,
  HAL_USART_PARITY_ODD
} hal_usart_parity_t;

HAL USART NSS mode

HAL1

HAL2



#define USART_NSS_HARD
#define USART_NSS_SOFT
typedef enum
{
  HAL_USART_SLAVE_SELECT_PIN_IGNORED,
  HAL_USART_SLAVE_SELECT_PIN_USED
} hal_usart_slave_select_config_t;

HAL USART NACK state

HAL1

HAL2

#define USART_NACK_ENABLE
#define USART_NACK_DISABLE

Removed as not used by this HAL USART Driver ( SMARTCARD specific setting handled by HAL SMARTCARD).

HAL USART clock polarity

HAL1

HAL2



#define USART_POLARITY_LOW
#define USART_POLARITY_HIGH
typedef enum
{
  HAL_USART_CLOCK_POLARITY_LOW,
  HAL_USART_CLOCK_POLARITY_HIGH
} hal_usart_clock_polarity_t;

HAL USART flags

HAL1

HAL2

#define USART_FLAG_TXFT
#define USART_FLAG_RXFT
#define USART_FLAG_RXFF
#define USART_FLAG_TXFE
#define USART_FLAG_REACK
#define USART_FLAG_TEACK
#define USART_FLAG_BUSY
#define USART_FLAG_RTOF

#define USART_FLAG_TXE
#define USART_FLAG_TXFNF

#define USART_FLAG_TC

#define USART_FLAG_RXNE
#define USART_FLAG_RXFNF

#define USART_FLAG_IDLE
#define USART_FLAG_ORE
#define USART_FLAG_NE
#define USART_FLAG_FE
#define USART_FLAG_PE

Removed; use the equivalent static inline functions provided in the LL Layer for flag management.

For more details, refer to HAL USART get flag/interrupt.


HAL USART clear flags

HAL1

HAL2

#define USART_CLEAR_PEF
#define USART_CLEAR_FEF
#define USART_CLEAR_NEF
#define USART_CLEAR_OREF
#define USART_CLEAR_IDLEF
#define USART_CLEAR_TXFECF
#define USART_CLEAR_TCF
#define USART_CLEAR_UDRF
#define USART_CLEAR_RTOF

Removed; use the equivalent static inline functions provided in the LL Layer to clear flags.

For more details, refer to Specific HAL USART clear flags.


HAL USART interrupts

HAL1

HAL2

#define USART_IT_PE
#define USART_IT_TXE
#define USART_IT_TXFNF
#define USART_IT_TC
#define USART_IT_RXNE
#define USART_IT_RXFNE
#define USART_IT_IDLE
#define USART_IT_RXFF
#define USART_IT_TXFE
#define USART_IT_RXFT
#define USART_IT_TXFT
#define USART_IT_ERR
#define USART_IT_ORE
#define USART_IT_NE
#define USART_IT_FE

Removed; use the equivalent static inline functions provided in the LL Layer for interrupt management.

For more details, refer to HAL USART enable interrupt.


HAL USART autonomous mode

HAL1

HAL2




#define USART_AUTONOMOUS_MODE_DISABLE

#define USART_AUTONOMOUS_MODE_ENABLE

The constants used to manage the USART autonomous mode have been removed, as enabling or disabling autonomous mode is no longer handled through USART_AutonomousModeConfTypeDef. Instead, use the following functions to control the autonomous mode:

hal_status_t HAL_USART_AM_EnablePacketTrigger(const hal_usart_handle_t *husart)

hal_status_t HAL_USART_AM_DisablePacketTrigger(const hal_usart_handle_t *husart)

HAL USART idle frame mode

HAL1

HAL2





#define USART_IDLE_FRAME_ENABLE

#define USART_IDLE_FRAME_DISABLE

The constants used to manage the USART autonomous mode have been removed, as enabling or disabling the idle frame mode is no longer handled through USART_AutonomousModeConfTypeDef. Instead, use the following functions to control the idle frame mode:

hal_status_t HAL_USART_AM_EnableIdle(const hal_usart_handle_t *husart)

hal_status_t HAL_USART_AM_DisableIdle(const hal_usart_handle_t *husart)

HAL USART FIFO modes

HAL1

HAL2



#define USART_FIFOMODE_ENABLE

#define USART_FIFOMODE_DISABLE

The FIFO mode constants have been removed. Instead, use the following functions to manage FIFO mode:

HAL_USART_EnableFifoMode(const hal_usart_handle_t *husart)

HAL_USART_DisableFifoMode(const hal_usart_handle_t *husart)

HAL USART clock output

HAL1

HAL2

#define USART_CLOCK_DISABLE
#define USART_CLOCK_ENABLE

Removed; In HAL1, these macros have been used internally by the HAL USART driver to configure synchronous mode.


Note

In HAL2, the user can select the mode through HAL_USART_SetConfig() or HAL_USART_SetMode().


HAL USART slave mode

HAL1

HAL2



#define USART_SLAVEMODE_DISABLE
#define USART_SLAVEMODE_ENABLE
typedef enum
{
  HAL_USART_MODE_MASTER
  HAL_USART_MODE_SLAVE
} hal_usart_mode_t;

HAL USART IT mask

HAL1

HAL2

#define USART_IT_MASK

Removed; this constant was used internally in HAL1 and do not impact user-level operations.


HAL USART masks and positions

HAL1

HAL2

#define USART_CR_MASK
#define USART_CR_POS
#define USART_ISR_MASK
#define USART_ISR_POS

Removed; these constants have been removed from HAL2 and are already provided in the DFP.